# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Eric Bélanger <eric@archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - configure with --disable-sse
#  - explicitly link v5/v6 with libatomic

pkgname=audacity
pkgver=2.4.1
pkgrel=4
epoch=1
pkgdesc="A program that lets you manipulate digital audio waveforms"
arch=('x86_64')
url="https://audacityteam.org"
license=('GPL2' 'CCPL')
groups=('pro-audio')
# upstream hard codes/vendors portaudio/portmidi
# https://github.com/audacity/audacity/issues/522
depends=('expat' 'gcc-libs' 'gdk-pixbuf2' 'glibc' 'libmad'
'libsoxr' 'soundtouch' 'wxgtk3')
makedepends=('alsa-lib' 'cmake' 'ffmpeg' 'flac' 'glib2' 'gtk3' 'jack' 'lame'
'libid3tag' 'libogg' 'libsndfile' 'libvorbis' 'lilv' 'lv2' 'portsmf' 'suil'
'twolame' 'vamp-plugin-sdk')
optdepends=('ffmpeg: additional import/export capabilities')
source=("https://github.com/${pkgname}/${pkgname}/archive/Audacity-${pkgver}.tar.gz"
        "${pkgname}-2.4.1-resize_crash.patch::https://github.com/dvzrv/audacity/commit/d7e769040b508aaf15ce7b51cc1a565d41cdb079.patch")
sha512sums=('2f0a3f7e24dce91ae520e285dbb05778b68e0fe37b8ded55ac568b5f8135069951b3986764adc5d0791c165b283a3c19596f1d6f51ba17028e0eb04558c63f25'
            '9c111b6d74ff0cd76f5f2db0ce513bf1c5400c41497220c87ea694f5b2b75c1e6bc1a817dd1fb2e81ed5ddcf2c610bb334a091c2cd8f7bae1111a911f47cab4b')

prepare() {
  mv -v "${pkgname}-Audacity-${pkgver}" "${pkgname}-${pkgver}"
  cd "${pkgname}-${pkgver}"
  # fix crash on resize: https://bugs.archlinux.org/task/66771
  patch -Np1 -i "../${pkgname}-2.4.1-resize_crash.patch"
  autoreconf -vfi
}

build() {
  cd "${pkgname}-${pkgver}"
  # the cmake setup is still more complicated and error-prone than the
  # autotools setup:
  # https://github.com/audacity/audacity/issues/519
  # https://github.com/audacity/audacity/issues/520
  # https://github.com/audacity/audacity/issues/521
  [[ $CARCH == "arm" || $CARCH == "armv6h" ]] && LIBS="-latomic"
  WX_CONFIG=wx-config-gtk3 LIBS=$LIBS ./configure --prefix="/usr" \
    --with-libsndfile="system" \
    --with-ffmpeg="system" \
    --with-expat="system" \
    --with-lame="system" \
    --with-libsoxr="system" \
    --with-portaudio \
    --with-portmidi \
    --with-libflac \
    --with-libid3tag \
    --with-libsamplerate \
    --with-sbsms \
    --with-soundtouch \
    --with-libtwolame \
    --with-libvorbis \
    --with-lv2 \
    --disable-sse
  make
}

package() {
  depends+=('libFLAC.so' 'libFLAC++.so' 'libasound.so' 'libgdk-3.so'
  'libglib-2.0.so' 'libgobject-2.0.so' 'libgtk-3.so' 'libid3tag.so'
  'libjack.so' 'liblilv-0.so' 'libogg.so' 'libsndfile.so' 'libsuil-0.so'
  'libtwolame.so' 'libvamp-hostsdk.so' 'libvorbis.so' 'libvorbisenc.so'
  'libvorbisfile.so' 'libportSMF.so')
  cd "${pkgname}-${pkgver}"
  make DESTDIR="${pkgdir}" install
  # install libnyquist plugins, missing since 2.4.0:
  # https://bugs.archlinux.org/task/66733
  install -vDm 644 plug-ins/*.ny -t "${pkgdir}/usr/share/${pkgname}/plug-ins"
  # install missing *.lsp files for nyquist plugins, missing since 2.4.0:
  # https://bugs.archlinux.org/task/66739
  install -vDm 644 nyquist/*.lsp -t "${pkgdir}/usr/share/${pkgname}/nyquist"
}
